package java19_3_22_reflect;

/**
 * @author 是阿秋啊
 * @date 2022/04/18 15:27
 **/
public class Test {
    public static void main(String[] args) {
        IMessage<String> msg1 = new MessageImpl1<>();
        msg1.printMsg("123");
        IMessage<Integer> msg2 = new MessageImpl2();
        msg2.printMsg(123);
    }
}
// 泛型接口，带一个类型参数
interface IMessage<T> {
    void printMsg(T t);
}
// 子类实现接口是，两种选择，继续保留泛型，是一个泛型类，要么实现时规定类型参数
class MessageImpl1<T> implements IMessage<T> {

    @Override
    public void printMsg(T t) {
        System.out.println(t);
        System.out.println("仍然是泛型类");
    }
}

class MessageImpl2 implements IMessage<Integer> {

    @Override
    public void printMsg(Integer t) {
        System.out.println(t);
        System.out.println("类行为Integer的普通类"+t);
    }
}
